var env = "dev";
var BASE_URL = 'http://172.20.16.5:3333';
var BASE_ANNEX = BASE_URL + '/office/static/';
var DEVELOP_ACCOUNT = 'phanatomtalon@163.com';
if (window.location.host === '192.168.1.220') {
    //正式环境
    BASE_URL = 'http://172.20.16.136:8080';
    BASE_ANNEX = 'http://172.20.16.136:8080/office/static/';
    DEVELOP_ACCOUNT = '34760393@qq.com';
    env = "prd";
}
var uploadUrl = BASE_URL + '/office/file/uploadFile?token=' + getToken();
var maskIndex = "";
var requestUrl = "";
$.ajaxSetup({
    beforeSend: function (request) {
        request.setRequestHeader('token', getToken());
        requestUrl = arguments[1].url;
        if (!(requestUrl.indexOf(".html") != -1 || requestUrl.indexOf(".css") != -1)) {
            //需要去重
            if (requestUrl.indexOf('mask') != -1) {
                maskIndex = layer.load(1, {
                    shade: [0.6, '#fff'] //0.1透明度的白色背景
                });
            }
            arguments[1].url = BASE_URL + arguments[1].url;
        }
    },
    timeout: 5 * 60 * 1000,
    cache: false,
    dataType: 'json',
    complete: function (xhr, status) {
        if (maskIndex) {
            layer.close(maskIndex);
        }
        if ("error" == status) {
            console.error('error url', requestUrl)
            if (xhr.responseJSON.status == 404) {
                showAlert('服务器接口不存在，请联系管理员！！！', 5)
            } else {
                showAlert('未知错误，请联系管理员！！！', 5)
            }
        } else if ('timeout' == status) {
            showAlert('请求超时，请5分钟后重试！！！', 5)
        } else if ('success' == status) {
            //刷新token
            document.cookie = `token=${getToken()}; expires=${new Date(parseInt(new Date().getTime() + 12 * 60 * 60 * 1000))}; path=/`;
        }
    },
    dataFilter: function (res, type) {
        if (type == 'json') {
            try {
                var resObj = JSON.parse(res);
                if (resObj.code == 401) {
                    layer.msg('登录失效，正在为您跳转到登录页面...')
                    setTimeout(function () {
                        window.location.href = '/login.html';
                    }, 2000)
                } else if (resObj.code && resObj.code == 500) {
                    showAlert(resObj.msg);
                    return
                }
            } catch (e) {
                if (requestUrl.indexOf('.') == -1) {
                    console.error('数据过滤失败', requestUrl)
                }
            }

        }
        return res;
    }
});
function getToken() {
    return Cookies.get('token');
}
function doPostSync(url, param, jsonFlag) {
    var result = "";
    $.ajax({
        url: url,
        data: jsonFlag ? JSON.stringify(param) : param,
        type: 'post',
        async: false,
        contentType: jsonFlag ? 'application/json' : 'application/x-www-form-urlencoded',
        success: function (res) {
            result = res;
        },
        error: function () {
            showAlert('服务器内部错误，请联系管理员', 4);
        },
        complete: function (res) {
        }
    });
    return result;
}

function doPostAsync(url, param, cb) {
    $.ajax({
        url: url,
        data: JSON.stringify(param),
        type: 'post',
        contentType: 'application/json',
        success: function (res) {
            if (typeof cb == 'function') {
                cb(res);
            }
        },
        error: function () {
            showAlert('服务器内部错误，请联系管理员', 4);
        }
    });
}

/**
 * 成功notice
 * @param content
 * @param title
 */
function showMsg(msg) {
    setTimeout(layer.msg(msg, {icon: 1}), 2000)
}

/**
 * 失败弹窗
 * @param content
 * @param title
 */
function showAlert(content, icon, cb) {
    //1，正确，2错误，3问号4锁，5哭，6笑脸
    layer.alert(content, {icon: icon || 5}, function (index) {
        layer.close(index);
        if (typeof cb == 'function') {
            cb()
        }
    })
}

function uploadFile(formData, cb) {
    var result = {};
    $.ajax({
        url: '/office/file/uploadFile?mask=true',
        dataType: 'json',
        type: 'POST',
        async: false,
        data: formData,
        processData: false, // 使数据不做处理
        contentType: false, // 不要设置Content-Type请求头
        success: function (res) {
            result = res;
        },
        error: function (response) {
            console.log(response);
        }
    });
    return result;
}

/**
 * openDialog
 * @param html
 */
function openDialog(html, title, full) {
    layer.open({
        content: html,
        title: title || '弹窗提示',
        type: 2,
        area: full ? ['100%', '100%'] : ['60%', '80%'],
        fix: false,
        maxmin: true,
        shadeClose: true,
        shade: 0.4,
        success: function (layero, index) {

        }
    })
}

/**
 * 关闭弹窗
 */
function closeDialog() {
    layer.closeAll();//子窗口关闭
}


/**
 * 获取表单提交数据
 * @param dom
 */
function getSubmitParam(dom) {
    var param = {};
    dom = dom ? dom : $("#fm")
    dom.find("[name]").each(function (i, obj) {
        var key = obj.name;
        var value = obj.value;
        param[key] = value;
    });
    return param
}

function validateCommonForm(dom) {
    var flag = true;
    dom = dom || $("#fm");
    dom.find('[name]').each(function (i, obj) {
        var value = obj.name;
        if (!$(`[name='${value}']`).val()) {
            //未通过加提示
            $(`[name='${value}']`).addClass('warn');
            flag = false;
            return flag;
        }
    })
    return flag;
}

/**
 * 渲染表单数据
 * @param data
 * @param dom
 */
function drawForm(data, dom) {
    dom = dom ? dom : $("#fm");
    dom.find("[name]").each(function (i, obj) {
        var key = obj.name;
        dom.find("[name=" + key + "]").val(data[key]);
    });
}

function onSelect(d) {
    var issd = this.id == 'sd', sd = issd ? d : new Date($('#startDate').datebox('getValue')),
        ed = issd ? new Date($('#endDate').datebox('getValue')) : d;
    if (ed < sd) {
        parent.$.messager.alert("提示", "结束日期小于开始日期!");
        //只要选择了日期，不管是开始或者结束都对比一下，如果结束小于开始，则清空结束日期的值并弹出日历选择框
        $('#endDate').datebox('setValue', '').datebox('showPanel');
    }
}

//判断浏览器大小方法
function screen() {
    //获取当前窗口的宽度
    var width = $(window).width();
    if (width > 1200) {
        return 3;   //大屏幕
    } else if (width > 992) {
        return 2;   //中屏幕
    } else if (width > 768) {
        return 1;   //小屏幕
    } else {
        return 0;   //超小屏幕
    }
}

/**
 * 获取ifaram id参数
 */
function getUrlParam() {
    var result = "";
    var paramStr = window.location.href.split("?")[1];
    if (paramStr) {
        result = paramStr.split("=")[1];
    }
    if (result.indexOf('&') != -1) {
        result = "";
    }
    return result;
}

/**
 * 获取ifaram json数据
 */
function getUrlParamsJson() {
    var result = "";
    var paramStr = window.location.href.split("?")[1];
    if (paramStr) {
        var tempParams = {};
        var temp = paramStr.split('&');
        temp.forEach(item => {
            var key = item.split('=')[0]
            var value = item.split('=')[1]
            tempParams[key] = value
        })
        result = tempParams

    } else {
        result = {};
    }
    return result;
}

function formatDate(now) {
    var year = now.getFullYear();  //取得4位数的年份
    var month = now.getMonth() + 1;  //取得日期中的月份，其中0表示1月，11表示12月
    var date = now.getDate();      //返回日期月份中的天数（1到31）
    if(month-10<0){
        month='0'+month
    }
    return year + "-" + month + "-" + date
}

function formatTime(now) {
    var year = now.getFullYear();  //取得4位数的年份
    var month = now.getMonth() + 1;  //取得日期中的月份，其中0表示1月，11表示12月
    var date = now.getDate();      //返回日期月份中的天数（1到31）
    var hour = now.getHours();     //返回日期中的小时数（0到23）
    var minute = now.getMinutes(); //返回日期中的分钟数（0到59）
    var second = now.getSeconds(); //返回日期中的秒数（0到59）
    return year + "-" + month + "-" + date + " " + hour + ":" + minute + ":" + second
}

function getDateTimeStr(offsetYear,offsetMonth,offsetDays) {
    var now = new Date();
    if(offsetYear){
        now.setFullYear(now.getFullYear() + offsetYear);
    }
    if(offsetMonth){
        now.setMonth(now.getMonth() + offsetMonth);
    }
    if(offsetDays){
        now.setDate(now.getDate() + offsetDays);

    }
    return formatTime(now);
}

function getDate(time) {
    return new Date(Date.parse(time.replace(/-/g, "/")))
}

function getUserId() {
    return localStorage.getItem('userId');
}

function getUserName() {
    return localStorage.getItem('userName');
}

function getOrgName() {
    return localStorage.getItem('orgName');
}

function getAccount() {
    return localStorage.getItem('account');
}


function dateFormatter(date) {
    if (date) {
        return new Date(+new Date(date) + 8 * 3600 * 1000).toISOString().replace(/T/g, ' ').replace(/\.[\d]{3}Z/, '');
    } else {
        return ""
    }
}

/**手机号脱敏*/
function densnPhone(str) {
    return str ? str.replace(/(\d{3})\d*(\d{4})/, '$1****$2') : '无';
}

/**添加disabled属性*/
function wrapFormAddDisabled(arr) {
    if (arr && arr.length > 0) {
        arr.forEach(item => {
            $("[name='" + item + "']").attr('disabled', true)
        })
    }
}
function showAnnex(url) {
    if (url) {
        if (url.indexOf('https://') != -1 || url.indexOf('http://') != -1) {
            window.open(url + '?token=' + Cookies.get('token'));
        } else {
            window.open(BASE_ANNEX + url + '?token=' + Cookies.get('token'));
        }
    } else {
        showAlert('文件不存在！！')
    }
}

